#include "rclcpp/rclcpp.hpp"

using namespace std::chrono_literals;

class PublisherNode : public rclcpp::Node {
public:
  PublisherNode(std::string name) : Node(name) {
    // printf("printf"); // 不能输出，因为缓存未满且没有刷新流输出流
    // printf("printf--\n"); // 不能输出
    printf("printf--\n");                  // 输出并刷新缓存
    std::cout.flush();                     // 刷新缓存--可以输出
    std::cout << "std--cout" << std::endl; // 可以输出
    //  endl是函数--自动flush刷新流输出流
    //  RCLCPP_INFO(this->get_logger(), "rcl_cpp log");
  }
};

int main(int argc, char **argv) {
  // 初始化ros2的C++接口
  rclcpp::init(argc, argv);
  // 建立节点对象
  auto node = std::make_shared<PublisherNode>("publisher_01");
  // 运行节点，检测退出信号
  rclcpp::spin(node);
  // 销毁节点并关闭C++接口
  rclcpp::shutdown();

  return 0;
}